Books-Lib.com » Читать книги » Разная литература » Графические интерфейсы пользователя Java - Тимур Сергеевич Машнин

Читать книгу - "Графические интерфейсы пользователя Java - Тимур Сергеевич Машнин"

Графические интерфейсы пользователя Java - Тимур Сергеевич Машнин - Читать книги онлайн | Слушать аудиокниги онлайн | Электронная библиотека books-lib.com

Открой для себя врата в удивительный мир Читать книги / Разная литература книг на сайте books-lib.com! Здесь, в самой лучшей библиотеке мира, ты найдешь сокровища слова и истории, которые творят чудеса. Возьми свой любимый гаджет (Смартфоны, Планшеты, Ноутбуки, Компьютеры, Электронные книги (e-book readers), Другие поддерживаемые устройства) и погрузись в магию чтения книги 'Графические интерфейсы пользователя Java - Тимур Сергеевич Машнин' автора Тимур Сергеевич Машнин прямо сейчас – дарим тебе возможность читать онлайн бесплатно и неограниченно!

153 0 11:53, 18-01-2023
Автор:Тимур Сергеевич Машнин Жанр:Читать книги / Разная литература Поделиться: Возрастные ограничения:(18+) Внимание! Книга может содержать контент только для совершеннолетних. Для несовершеннолетних просмотр данного контента СТРОГО ЗАПРЕЩЕН! Если в книге присутствует наличие пропаганды ЛГБТ и другого, запрещенного контента - просьба написать на почту для удаления материала.
0 0

Аннотация к книге "Графические интерфейсы пользователя Java - Тимур Сергеевич Машнин", которую можно читать онлайн бесплатно без регистрации

Эта книга для тех, кто уже знаком с языком программирования Java и хотел бы научиться разрабатывать настольные приложения Java с графическим интерфейсом пользователя.С этой книгой Вы познакомитесь с такими Java библиотеками графического интерфейса пользователя, как AWT, Swing, SWT/JFace и JavaFX.

1 ... 30 31 32 33 34 35 36 37 38 ... 59
Перейти на страницу:
вызов метода bind в конструкторе класса запускает наблюдение за изменениями зависимостей.

Модель событий

Все узлы графа сцены могут выступать в качестве цели событий за счет реализации интерфейса EventTarget.

События используются для уведомления вашего приложения о действиях, предпринятых пользователем, и позволяют приложению реагировать на событие.

И все события платформы JavaFX представлены подклассами базового класса Event.

Это события действий, события ввода данных пользователем, события редактирования.

JavaFX-события характеризуются источником события, целью события и типом события.

Как правило, источником события и целью события служит один и тот же JavaFX-компонент. Однако статический метод fireEvent класса Event позволяет послать событие определенной цели события.

В этом примере, при нажатии кнопки btn1 срабатывает обработчик событий кнопки btn2.

Так как в обработчике кнопки btn1 мы посылаем событие методом fireEvent другой кнопке.

Также цель события можно определить за счет создания цепочки доставки события, представленной объектом EventDispatchChain.

За создание цепочки доставки события JavaFX-компонента отвечает метод buildEventDispatchChain класса Node, возвращающий объект EventDispatchChain.

Методы append и prepend интерфейса EventDispatchChain позволяют добавить объект EventDispatcher в конец и в начало исходной цепочки доставки события, а метод dispatchEvent интерфейса EventDispatchChain обеспечивает доставку определенного события JavaFX-компоненту.

Объект EventDispatcher является реализацией интерфейса EventDispatcher, который имеет единственный метод dispatchEvent, отвечающий за дальнейшую передачу события через цепочку доставки с возможностью его обработки, модификации, замены или отклонения, где event – это передаваемое событие, а tail – остаток цепочки доставки.

Этот пример демонстрирует регистрацию цепочки доставки события для кнопки Button с последующей доставкой события кнопке при щелчке мышкой на сцене Scene.

С помощью метода setEventDispatcher класса Node можно определить пользовательский EventDispatcher-объект для JavaFX-компонента.

В этом примере, при нажатии кнопки btn1 также срабатывает обработчик событий кнопки btn2.

Каждый объект EventDispatcher в цепочке EventDispatchChain отвечает за пересылку события в остальную часть цепочки во время диспетчеризации событий.

В пользовательском объекте EventDispatcher для кнопки btn1 мы отправляем событие другой кнопке.

Процесс доставки события через цепочку доставки EventDispatchChain разделяется на две фазы.

Первая фаза называется фазой захвата (capturing phase) и состоит из передачи события от корневого узла к узлу цели события, от первого элемента цепочки EventDispatchChain, связанной с целью события, до ее последнего элемента.

Вторая фаза – восходящая фаза (bubbling phase) заключается в противоположном движении события от узла цели события к корневому узлу цепочки доставки.

Когда происходит некое действие, система определяет, какой узел является целью события.

После того, как узел графа сцены выбран как цель события, маршрут события или цепочка доставки события EventDispatchChain устанавливается реализацией по умолчанию метода buildEventDispatchChain интерфейса EventTarget в классе Node.

На этапе захвата события событие отправляется корневым узлом приложения по цепочке доставки события целевому узлу.

На этом этапе происходит обработка события фильтрами события.

Если какой-либо узел в цепочке имеет фильтр событий, зарегистрированный для типа произошедшего события, вызывается этот фильтр.

Когда фильтр завершает свою работу, событие передается следующему узлу по цепочке.

Фильтр регистрируется методом addEventFilter класса Node.

После того, как цель события достигнута, событие возвращается по цепочке обратно от цели к корневому узлу.

На этом этапе происходит обработка события обработчиками события.

Если какой-либо узел в цепочке имеет обработчик, зарегистрированный для типа принимаемого события, вызывается этот обработчик.

Когда обработчик завершает свою работу, событие возвращается на следующий узел вверх по цепочке.

Обработчик регистрируется методом addEventHandler класса Node.

Тип события, представленный классом EventType, определяет характеристику события.

Или другими словами, типы события дополнительно классифицируют события одного класса событий, например, KEY_PRESSED, KEY_RELEASED или KEY_TYPED.

При этом типы событий образуют иерархическую структуру с корневым типом ANY.

Имя типа события для Event-объекта можно получить методом getEventType.getName.

Обрабатывать события JavaFX-компоненты могут, используя широкий набор методов, которым в качестве аргумента передается объект EventHandler.

Это могут быть или фильтры, или обработчики событий.

Объект EventHandler создается с помощью реализации интерфейса EventHandler, переопределяя его метод handle, в котором и обрабатывается событие.

На любом этапе доставки события цепочку можно прервать, поглотив событие.

Для этого в методе handle нужно вызвать метод consume для объекта события.

Hyperlink и Label

После того, как мы разобрали общие вопросы, связанные со свойствами компонентов и обработкой событий, вернемся к элементам управления интерфейса пользователя.

Компонент Hyperlink используется для форматирования текста в виде гиперссылки.

Компонент Hyperlink создается с помощью конструктора, в котором можно указать текст и изображение гиперссылки.

Отличие набора свойств компонента Hyperlink от набора свойств компонента Button заключается в наличии свойства visited, которое принимает значение true при активации гиперссылки.

Основная задача, которая стоит при применении компонента Hyperlink – это создание привлекательного общего внешнего вида гиперссылки и его изменение в зависимости от того нажата ли гиперссылка или нет, была ли она уже активирована или нет, а также обработка активации гиперссылки.

По умолчанию гиперссылка отображается синим цветом с пунктирной рамкой вокруг гиперссылки.

При вводе курсора мышки, гиперссылка становится подчеркнутой, а при нажатии ее цвет меняется на черный.

Для того чтобы убрать рамку, можно использовать CSS свойство -fx-border-width.

Для того чтобы сделать гиперссылку подчеркнутой, можно использовать метод setUnderline (true).

Чтобы изменить внешний вид гиперссылки при наведении курсора мыши и нажатии, можно использовать обработчики событий OnMouseEntered, OnMousePressed и OnMouseExited.

Сама функциональность гиперссылки определяется в обработчике события действия OnAction.

Здесь можно запустить браузер WebView или же можно полностью обновить сцену.

Компонент Label обеспечивает отображение текстовой подписи, изображения, текстовой подписи и изображения.

Этот компонент создается с помощью конструктора, в котором можно указать текст подписи и изображение.

Цвет текста можно установить методом setTextFill.

Шрифт можно установить методом setFont.

И перенос текста на новую строку можно установить методом setWrapText (true).

Методом setContentDisplay можно установить расположение изображения относительно текста.

Кнопка ToggleButton и RadioButton

Компонент ToggleButton представляет кнопку, которая может находиться в нажатом и отжатом состояниях.

Кнопка ToggleButton может быть создана с помощью конструктора, в котором можно указать надпись кнопки и ее изображение.

Отличие набора свойств компонента ToggleButton от набора свойств компонента Button заключается в наличии свойств selected и toggleGroup.

Свойство selected принимает значение true, если кнопка ToggleButton находится в нажатом состоянии, и значение false – если кнопка ToggleButton отжата.

Свойство toggleGroup указывает группу ToggleGroup, к которой принадлежит кнопка ToggleButton.

Объединение кнопок ToggleButton в группу ToggleGroup отличается от объединения кнопок RadioButton в группу ToggleGroup – в группе кнопок RadioButton по меньшей мере одна кнопка должна находиться в выбранном состоянии.

В группе кнопок ToggleButton такой функциональности нет.

Объединение кнопок ToggleButton в группу обеспечивает эффект нажатия только единственной кнопки в группе.

При нажатии

1 ... 30 31 32 33 34 35 36 37 38 ... 59
Перейти на страницу:
Отзывы - 0

Прочитали книгу? Предлагаем вам поделится своим впечатлением! Ваш отзыв будет полезен читателям, которые еще только собираются познакомиться с произведением.


Новые отзывы

  1. Гость Елена Гость Елена12 июнь 19:12 Потрясающий роман , очень интересно. Обожаю Анну Джейн спасибо 💗 Поклонник - Анна Джейн
  2. Гость Гость24 май 20:12 Супер! Читайте, не пожалеете Правила нежных предательств - Инга Максимовская
  3. Гость Наталья Гость Наталья21 май 03:36 Талантливо и интересно написано. И сюжет не банальный, и слог отличный. А самое главное -любовная линия без слащавости и тошнотного романтизма. Вторая попытка леди Тейл 2 - Мстислава Черная
  4. Гость Владимир Гость Владимир23 март 20:08 Динамичный и захватывающий военный роман, который мастерски сочетает драматизм событий и напряжённые боевые сцены, погружая в атмосферу героизма и мужества. Боевой сплав - Сергей Иванович Зверев
Все комметарии: